$(function () {
  // 1. 选择框
  // 全选按钮状态 赋值给每个按钮
  $(".checkall").change(function () {
    $(".j-checkbox, .checkall").prop("checked", $(this).prop("checked"));
    if ($(this).prop("checked")) {
      $(".cart-item").addClass("check-cart-item");
    } else {
      $(".cart-item").removeClass("check-cart-item");
    }
    getSum();
  });

  // 若全部小按钮选中，则全选选中
  $(".j-checkbox").change(function () {
    if ($(this).prop("checked")) {
      $(this).parent().parent().addClass("check-cart-item"); // $(this).parents(".cart-item") // parents 寻找指定祖宗
    } else {
      $(this).parent().parent().removeClass("check-cart-item");
    }
    if ($(".check-cart-item").length == $(".j-checkbox").length) {
      $(".checkall").prop("checked", true);
    } else {
      $(".checkall").prop("checked", false);
    }
    getSum();
  });

  // 增减商品数量
  $(".decrement").click(function () {
    var pre = $(this).siblings(".itxt").val();
    var price = $(this).parents(".p-num").siblings(".p-price").text().substr(1);
    if (pre == 1) {
      return false;
    }
    pre--;
    $(this)
      .siblings(".itxt")
      .val(pre + "");
    // 计算当前商品小计
    $(this)
      .parents(".p-num")
      .siblings(".p-sum")
      .text("￥" + (pre * price).toFixed(2));
    getSum();
  });
  $(".increment").click(function () {
    var pre = $(this).siblings(".itxt").val();
    var price = $(this).parents(".p-num").siblings(".p-price").text().substr(1);
    pre++;
    $(this)
      .siblings(".itxt")
      .val(pre + "");
    $(this)
      .parents(".p-num")
      .siblings(".p-sum")
      .text("￥" + (pre * price).toFixed(2));
    getSum();
  });

  // 如果用户直接修改文本值，小计也需要随时变。
  $(".itxt").change(function () {
    var pre = $(this).val();
    var price = $(this).parents(".p-num").siblings(".p-price").html().substr(1);
    $(this)
      .parents(".p-num")
      .siblings(".p-sum")
      .html("￥" + (price * pre).toFixed(2));
    getSum();
  });

  // 删除模块
  $(".p-action").click(function () {
    $(this).parent(".cart-item").remove();
    getSum();
  });

  $(".remove-batch").click(function () {
    $(".check-cart-item").remove();
    getSum();
  });

  $(".clear-all").click(function () {
    $(".cart-item-list").empty();
    getSum();
  });

  getSum();

  // 求合计
  function getSum() {
    var num = 0;
    var price = 0;
    $(".check-cart-item").each(function (idx, ele) {
      num += parseInt($(ele).find(".itxt").val());
      price += parseFloat($(ele).find(".p-sum").text().substr(1));
    });
    $(".amount-sum em").text(num);
    $(".price-sum em").text("￥" + price.toFixed(2));
  }
});
